//将对象转为字符串
function objToSearchString(obj) {
    var str = ''    //创建一个空的字符串
    for (var key in obj) {      //使用for in遍历对象
        str += `${key}=${obj[key]}&`
    }
    return str.slice(0, str.length - 1)     //将最后一个&符号取掉
}

//封装promise ajax函数
function ajax(method, url, params) {
    //新建一个Promise对象并返回
    return new Promise((resolve, reject) => {
        //创建请求对象
        var xhr = new XMLHttpRequest()
        //配置请求对象
        xhr.open(method, method == 'get' ? url + "?" + objToSearchString(params) : url)
        //设置回调函数
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4) {
                //resolve会更改Promise的状态为成功，同时立即调用then的回调函数
                resolve(JSON.parse(xhr.responseText))
            }
        }
        //发送请求
        //提前对post请求设置请求头
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
        xhr.send(method == 'get' ? null : objToSearchString(params))
    })
}